using System;


namespace Wicresoft.EKA.VCenter
{

    public enum OptionType
    {
        Boolean,
        Integer,
        Float,
        Long,
        String
    }

    public class OptionSpec
    {
        private string _name;
        private string _desc;
        private OptionType _type;
        private string _value;
        // Create a logger for use in this class
        private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="name">
        /// url           VI SDK URL to connect to;
        /// userName      Username to connect to the host;
        /// password      password of the corresponding user;
        /// server        VI server to connect to;
        /// portNumber    Port used to connect to server  443  ;
        /// protocol      Protocol used to connect to server;
        /// servicePath   Service path used to connect to server;
        /// sessionFile   File containing session ID/cookie to utilize;
        /// ignorecert    Ignore the server certificate validation ;
        /// </param>
        /// <param name="value"></param>
        /// <param name="type"></param>
        /// <param name="desc"></param>
        public OptionSpec(string name, string value, OptionType type = OptionType.String, string desc = "")
        {
            this._name = name;
            this._type = type;
            this._desc = Desc;
            this._value = value;
        }

        /// <summary>
        /// url           VI SDK URL to connect to
        /// userName      Username to connect to the host
        /// password      password of the corresponding user
        /// server        VI server to connect to
        /// portNumber    Port used to connect to server  443  
        /// protocol      Protocol used to connect to server
        /// servicePath   Service path used to connect to server
        /// sessionFile   File containing session ID/cookie to utilize
        /// ignorecert    Ignore the server certificate validation  
        /// </summary>
        public string Name
        {
            get
            {
                return _name;
            }
        }


        public string Desc
        {
            get
            {
                return _desc;
            }
        }

        public OptionType Type
        {
            get
            {
                return _type;
            }
        }

        public string Value
        {
            get
            {
                return _value;
            }
        }
    }
}
